package com.ourteam.product.requirement.dao;

/**
 * Template Name : DAO数据对象
 * Template Version : 1
 * Template Last Modfiy Date : Fri Aug 18 15:51:23 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:15
  * Warning ! This file will be overwrite when regenerate !
  *
 */
import org.apache.commons.lang.StringUtils;


public class ProductFeature implements java.io.Serializable {
    private long id;

    /**
     * Attribute id Be Seted Falg
     */
    private boolean idSetted = false;

    /**
    * Attribute id is Null Falg
    */
    private boolean idNull = false;
    private String featureCode;

    /**
     * Attribute featureCode Be Seted Falg
     */
    private boolean featureCodeSetted = false;

    /**
    * Attribute featureCode is Null Falg
    */
    private boolean featureCodeNull = false;
    private String featureName;

    /**
     * Attribute featureName Be Seted Falg
     */
    private boolean featureNameSetted = false;

    /**
    * Attribute featureName is Null Falg
    */
    private boolean featureNameNull = false;
    private long parentId;

    /**
     * Attribute parentId Be Seted Falg
     */
    private boolean parentIdSetted = false;

    /**
    * Attribute parentId is Null Falg
    */
    private boolean parentIdNull = false;
    private long productDefineId;

    /**
     * Attribute productDefineId Be Seted Falg
     */
    private boolean productDefineIdSetted = false;

    /**
    * Attribute productDefineId is Null Falg
    */
    private boolean productDefineIdNull = false;
    private String remarks;

    /**
     * Attribute remarks Be Seted Falg
     */
    private boolean remarksSetted = false;

    /**
    * Attribute remarks is Null Falg
    */
    private boolean remarksNull = false;
    private String status;

    /**
     * Attribute status Be Seted Falg
     */
    private boolean statusSetted = false;

    /**
    * Attribute status is Null Falg
    */
    private boolean statusNull = false;
    private String canTest;

    /**
     * Attribute canTest Be Seted Falg
     */
    private boolean canTestSetted = false;

    /**
    * Attribute canTest is Null Falg
    */
    private boolean canTestNull = false;
    private String keyFeature;

    /**
     * Attribute keyFeature Be Seted Falg
     */
    private boolean keyFeatureSetted = false;

    /**
    * Attribute keyFeature is Null Falg
    */
    private boolean keyFeatureNull = false;
    private int sortIndex;

    /**
     * Attribute sortIndex Be Seted Falg
     */
    private boolean sortIndexSetted = false;

    /**
    * Attribute sortIndex is Null Falg
    */
    private boolean sortIndexNull = false;
    private int indent;

    /**
     * Attribute indent Be Seted Falg
     */
    private boolean indentSetted = false;

    /**
    * Attribute indent is Null Falg
    */
    private boolean indentNull = false;

    public ProductFeature() {
        super();
    }

    /**
         * Get id
         *
         * @return long
         */
    final public long getId() {
        return id;
    }

    /**
     * Set id
     *
     * @param long
     */
    final public void setId(long id) {
        this.id = id;

        this.idSetted = true;

        this.setIdNull(false);
    }

    /**
     * Get id Has Been Setted
     *
     * @return boolean
     */
    final public boolean isIdSetted() {
        return this.idSetted;
    }

    /**
     * Set id Null
     *
     */
    final public void setIdNull() {
        this.idNull = true;
    }

    final public void setIdNull(boolean aNullFlag) {
        this.idNull = aNullFlag;
    }

    final public boolean isIdNull() {
        return this.idNull;
    }

    /**
         * Get featureCode
         *
         * @return String
         */
    final public String getFeatureCode() {
        if (isFeatureCodeNull()) {
            return null;
        } else {
            return StringUtils.trim(featureCode);
        }
    }

    /**
     * Set featureCode
     *
     * @param String
     */
    final public void setFeatureCode(String featureCode) {
        this.featureCode = StringUtils.trim(featureCode);

        this.featureCodeSetted = true;

        this.setFeatureCodeNull(this.featureCode == null);
    }

    /**
     * Get featureCode Has Been Setted
     *
     * @return boolean
     */
    final public boolean isFeatureCodeSetted() {
        return this.featureCodeSetted;
    }

    /**
     * Set featureCode Null
     *
     */
    final public void setFeatureCodeNull() {
        this.featureCodeNull = true;
    }

    final public void setFeatureCodeNull(boolean aNullFlag) {
        this.featureCodeNull = aNullFlag;
    }

    final public boolean isFeatureCodeNull() {
        return this.featureCodeNull;
    }

    /**
         * Get featureName
         *
         * @return String
         */
    final public String getFeatureName() {
        if (isFeatureNameNull()) {
            return null;
        } else {
            return StringUtils.trim(featureName);
        }
    }

    /**
     * Set featureName
     *
     * @param String
     */
    final public void setFeatureName(String featureName) {
        this.featureName = StringUtils.trim(featureName);

        this.featureNameSetted = true;

        this.setFeatureNameNull(this.featureName == null);
    }

    /**
     * Get featureName Has Been Setted
     *
     * @return boolean
     */
    final public boolean isFeatureNameSetted() {
        return this.featureNameSetted;
    }

    /**
     * Set featureName Null
     *
     */
    final public void setFeatureNameNull() {
        this.featureNameNull = true;
    }

    final public void setFeatureNameNull(boolean aNullFlag) {
        this.featureNameNull = aNullFlag;
    }

    final public boolean isFeatureNameNull() {
        return this.featureNameNull;
    }

    /**
         * Get parentId
         *
         * @return long
         */
    final public long getParentId() {
        return parentId;
    }

    /**
     * Set parentId
     *
     * @param long
     */
    final public void setParentId(long parentId) {
        this.parentId = parentId;

        this.parentIdSetted = true;

        this.setParentIdNull(false);
    }

    /**
     * Get parentId Has Been Setted
     *
     * @return boolean
     */
    final public boolean isParentIdSetted() {
        return this.parentIdSetted;
    }

    /**
     * Set parentId Null
     *
     */
    final public void setParentIdNull() {
        this.parentIdNull = true;
    }

    final public void setParentIdNull(boolean aNullFlag) {
        this.parentIdNull = aNullFlag;
    }

    final public boolean isParentIdNull() {
        return this.parentIdNull;
    }

    /**
         * Get productDefineId
         *
         * @return long
         */
    final public long getProductDefineId() {
        return productDefineId;
    }

    /**
     * Set productDefineId
     *
     * @param long
     */
    final public void setProductDefineId(long productDefineId) {
        this.productDefineId = productDefineId;

        this.productDefineIdSetted = true;

        this.setProductDefineIdNull(false);
    }

    /**
     * Get productDefineId Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductDefineIdSetted() {
        return this.productDefineIdSetted;
    }

    /**
     * Set productDefineId Null
     *
     */
    final public void setProductDefineIdNull() {
        this.productDefineIdNull = true;
    }

    final public void setProductDefineIdNull(boolean aNullFlag) {
        this.productDefineIdNull = aNullFlag;
    }

    final public boolean isProductDefineIdNull() {
        return this.productDefineIdNull;
    }

    /**
         * Get remarks
         *
         * @return String
         */
    final public String getRemarks() {
        if (isRemarksNull()) {
            return null;
        } else {
            return StringUtils.trim(remarks);
        }
    }

    /**
     * Set remarks
     *
     * @param String
     */
    final public void setRemarks(String remarks) {
        this.remarks = StringUtils.trim(remarks);

        this.remarksSetted = true;

        this.setRemarksNull(this.remarks == null);
    }

    /**
     * Get remarks Has Been Setted
     *
     * @return boolean
     */
    final public boolean isRemarksSetted() {
        return this.remarksSetted;
    }

    /**
     * Set remarks Null
     *
     */
    final public void setRemarksNull() {
        this.remarksNull = true;
    }

    final public void setRemarksNull(boolean aNullFlag) {
        this.remarksNull = aNullFlag;
    }

    final public boolean isRemarksNull() {
        return this.remarksNull;
    }

    /**
         * Get status
         *
         * @return String
         */
    final public String getStatus() {
        if (isStatusNull()) {
            return null;
        } else {
            return StringUtils.trim(status);
        }
    }

    /**
     * Set status
     *
     * @param String
     */
    final public void setStatus(String status) {
        this.status = StringUtils.trim(status);

        this.statusSetted = true;

        this.setStatusNull(this.status == null);
    }

    /**
     * Get status Has Been Setted
     *
     * @return boolean
     */
    final public boolean isStatusSetted() {
        return this.statusSetted;
    }

    /**
     * Set status Null
     *
     */
    final public void setStatusNull() {
        this.statusNull = true;
    }

    final public void setStatusNull(boolean aNullFlag) {
        this.statusNull = aNullFlag;
    }

    final public boolean isStatusNull() {
        return this.statusNull;
    }

    /**
         * Get canTest
         *
         * @return String
         */
    final public String getCanTest() {
        if (isCanTestNull()) {
            return null;
        } else {
            return StringUtils.trim(canTest);
        }
    }

    /**
     * Set canTest
     *
     * @param String
     */
    final public void setCanTest(String canTest) {
        this.canTest = StringUtils.trim(canTest);

        this.canTestSetted = true;

        this.setCanTestNull(this.canTest == null);
    }

    /**
     * Get canTest Has Been Setted
     *
     * @return boolean
     */
    final public boolean isCanTestSetted() {
        return this.canTestSetted;
    }

    /**
     * Set canTest Null
     *
     */
    final public void setCanTestNull() {
        this.canTestNull = true;
    }

    final public void setCanTestNull(boolean aNullFlag) {
        this.canTestNull = aNullFlag;
    }

    final public boolean isCanTestNull() {
        return this.canTestNull;
    }

    /**
         * Get keyFeature
         *
         * @return String
         */
    final public String getKeyFeature() {
        if (isKeyFeatureNull()) {
            return null;
        } else {
            return StringUtils.trim(keyFeature);
        }
    }

    /**
     * Set keyFeature
     *
     * @param String
     */
    final public void setKeyFeature(String keyFeature) {
        this.keyFeature = StringUtils.trim(keyFeature);

        this.keyFeatureSetted = true;

        this.setKeyFeatureNull(this.keyFeature == null);
    }

    /**
     * Get keyFeature Has Been Setted
     *
     * @return boolean
     */
    final public boolean isKeyFeatureSetted() {
        return this.keyFeatureSetted;
    }

    /**
     * Set keyFeature Null
     *
     */
    final public void setKeyFeatureNull() {
        this.keyFeatureNull = true;
    }

    final public void setKeyFeatureNull(boolean aNullFlag) {
        this.keyFeatureNull = aNullFlag;
    }

    final public boolean isKeyFeatureNull() {
        return this.keyFeatureNull;
    }

    /**
         * Get sortIndex
         *
         * @return int
         */
    final public int getSortIndex() {
        return sortIndex;
    }

    /**
     * Set sortIndex
     *
     * @param int
     */
    final public void setSortIndex(int sortIndex) {
        this.sortIndex = sortIndex;

        this.sortIndexSetted = true;

        this.setSortIndexNull(false);
    }

    /**
     * Get sortIndex Has Been Setted
     *
     * @return boolean
     */
    final public boolean isSortIndexSetted() {
        return this.sortIndexSetted;
    }

    /**
     * Set sortIndex Null
     *
     */
    final public void setSortIndexNull() {
        this.sortIndexNull = true;
    }

    final public void setSortIndexNull(boolean aNullFlag) {
        this.sortIndexNull = aNullFlag;
    }

    final public boolean isSortIndexNull() {
        return this.sortIndexNull;
    }

    /**
         * Get indent
         *
         * @return int
         */
    final public int getIndent() {
        return indent;
    }

    /**
     * Set indent
     *
     * @param int
     */
    final public void setIndent(int indent) {
        this.indent = indent;

        this.indentSetted = true;

        this.setIndentNull(false);
    }

    /**
     * Get indent Has Been Setted
     *
     * @return boolean
     */
    final public boolean isIndentSetted() {
        return this.indentSetted;
    }

    /**
     * Set indent Null
     *
     */
    final public void setIndentNull() {
        this.indentNull = true;
    }

    final public void setIndentNull(boolean aNullFlag) {
        this.indentNull = aNullFlag;
    }

    final public boolean isIndentNull() {
        return this.indentNull;
    }

    public int hashCode() {
        final int prime = 31;
        int result = 1;

        result = (prime * result) + (int) (getId() ^ (getId() >>> 32));

        return result;
    }

    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }

        if ((obj instanceof ProductFeature) == false) {
            return false;
        }

        ProductFeature other = (ProductFeature) obj;

        if (getId() != other.getId()) {
            return false;
        }

        return true;
    }

    public String toString() {
        StringBuffer buffer = new StringBuffer();

        buffer.append("[");

        buffer.append("keyFeature=");
        buffer.append(this.keyFeature);

        buffer.append("sortIndex=");
        buffer.append(this.sortIndex);

        buffer.append("indent=");
        buffer.append(this.indent);

        buffer.append("id=");
        buffer.append(this.id);

        buffer.append("featureCode=");
        buffer.append(this.featureCode);

        buffer.append("featureName=");
        buffer.append(this.featureName);

        buffer.append("parentId=");
        buffer.append(this.parentId);

        buffer.append("productDefineId=");
        buffer.append(this.productDefineId);

        buffer.append("remarks=");
        buffer.append(this.remarks);

        buffer.append("status=");
        buffer.append(this.status);

        buffer.append("canTest=");
        buffer.append(this.canTest);

        buffer.append("]");

        return buffer.toString();
    }
}
